package thread;

import java.util.Scanner;

public class Demo10 {
    public static void main(String[] args) {
        Thread t = new Thread(() -> {
            // 通过 isInterrupted() 判定线程是否被终止.
            // 此处不能直接使用 t
            // 使用 Thread.currentThread() 来代替.
            while (!Thread.currentThread().isInterrupted()) {
                System.out.println("hello thread");
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    // throw new RuntimeException(e);

                    // 1. 立即终止线程
                    // break;

                    // 2. 稍后处理
                    // 先执行一些其他操作, 比如释放资源收尾操作
                    // 然后再 break
                    //break;

                    // 3. 不处理, 忽略了终止请求.
                    continue;
                }
            }
            System.out.println("线程 t 终止");
        });

        t.start();

        System.out.println("输入任意内容, 终止 t 线程");
        Scanner scanner = new Scanner(System.in);
        scanner.next();

        // 终止 t 线程
        t.interrupt();
    }
}
